//
//  HRHomePageModel.swift
//  weiBo
//
//  Created by helong on 16/7/13.
//  Copyright © 2016年 helong. All rights reserved.
//

import UIKit

class HRHomePageModel: NSObject {
    //  微博内容
    var text: String?
    //  用户id
    var id: Int64 = 0
    //  发微博的时间
    var created_at: String?
    //  微博的来源
    var source: String?
    //  关注用户的微博的用户信息
    //  转发数
    var reposts_count: Int = 0
    //  评论数
    var comments_count: Int = 0
    //  表态数(赞)
    var attitudes_count: Int = 0
    //  转发类容:因为转发类容(retweeted_status)的字段和用户信息(HRHomePageModel)的字段完全一样,所以没有必要重新创建模型,重用user的模型即可(就是普通的模型嵌套)
    var retweeted_status: HRHomePageModel?
    //  用户(user)信息,里面是一个模型
    var user: HRHomePageUserModel?
    //  转发微博配图的模型数组
    var pic_urls: [HRRetweetPicture]?
    
    init(dict: [String: AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user" {//    如果键是"user"那么需要调用user类的字典转模型
            
            guard let dic = value as? [String: AnyObject] else{
               return
            }
            user = HRHomePageUserModel(dict: dic)
            
        }else if key == "retweeted_status" {//  如果键是 retweeted_status 那么调用retweeted_status 类中的字典转模型
            
            guard let dict = value as? [String: AnyObject] else{
                return
            }
            //  重用user的模型,对retweeted_status对应的字典进行字典转模型
            retweeted_status = HRHomePageModel(dict: dict)
            
        }else if key == "pic_urls"{//   如果key等于转发视图,那么字典转模型
            
            guard let arr = value as? [[String: AnyObject]] else {
                return
            }
            var tempArr: [HRRetweetPicture] = [HRRetweetPicture]()
            for dic in arr {
            let model = HRRetweetPicture(dic: dic)
                tempArr.append(model)
            }
            pic_urls = tempArr
            
        }else{// 如果键是"user"那么正常进行字典转模型
            
            super.setValue(value, forKey: key)
        }
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
}
